Google ColabとPythonでNocoBaseのAPIにアクセスする
困っていたこと
NocoBaseとGoogleスプレッドシートとの間で読み書きをしたいです。
例えばNocoBaseの情報をスプレッドシートに出力したり、逆にスプレッドシートの情報をNocoBaseに取り込んだりできると便利です。
動作環境を用意するのも手間なので、Google ColabとPythonを使って行いたいです。
どう対応すればいいの?
拙作の python-nocobase を使うとPythonからNocoBaseのデータを読み書きすることができます。
まず下記ブログを参考にAPIにアクセスするためのAPI Tokenを入手してください。
python-nocobaseは python-nocodb のコードを大いに参考にさせてもらいました。
Pythonコード
python-nocobaseは私のGitHubリポジトリにあるので、下記コマンドでインストールします。
!pip install git+https://github.com/ueki-kazuki/python-nocobase
下記のPythonコードはコレクション(DBテーブル)を一覧表示します。
実行前にColab画面左のシークレットで NOCOBASE_URL
に接続先のNocoBaseのURL を、 NOCOBASE_TOKEN
には上記で入手したNocoBaseのAPI Tokenを設定しておいてください。
from google.colab import userdata
from nocobase.exceptions import NocoBaseAPIError
from nocobase.nocobase import JWTAuthToken
from nocobase.infra.requests_client import NocoBaseRequestsClient
auth = JWTAuthToken(userdata.get("NOCOBASE_TOKEN"))
client = NocoBaseRequestsClient(auth, userdata.get("NOCOBASE_URL"))
for c in client.collections().list():
print(f'{c["name"]=}')
client
に対して命令を実行することで各種操作が行えるようになっています。collections
はテーブル一覧を取得する命令です。
どんな操作ができるかは Collection rows operations
を参考にしてください。